Class Tracking — Financial Analysis by Department, Project, or Business Channel
Class Tracking is a feature in the Accounting module that allows you to assign classification labels — called Classes — to individual accounting transactions. This enables you to filter and view financial reports by specific groups, such as departments (Sales, HR, Finance), projects, or business channels.
This feature is useful when you need to:
Before using Class Tracking, you need to complete the following two setup steps.
Step 1 — Enable the Class Tracking Feature
Step 2 — Create a List of Classes
You can create multiple Classes and edit their names at any time. The system does not include any default Classes — you must create them according to your organizational structure.
There are two ways to assign a Class to transactions
Method 1 — Assign a Class Directly When Creating or Editing a Transaction
This is the most common method. When opening a transaction creation or edit form, you will see the Class field with a dropdown selection.
Example using an Invoice:
Note: Some transaction types only allow Class selection under specific statuses. See the Behavior Rules section below for details.
Method 2 — Assign a Class Through the Mapping Form in Transactions
Use this method when you want to assign or change the Class for existing transactions without opening each transaction individually.
Note: The Mapping form displays the current Class of the transaction (if any). You can change the Class here at any time, but this change does not automatically synchronize with related transactions that were previously created.
| Transaction Type | How Class Is Assigned | Conditions | Notes |
| Invoice | Manually selected on Add/Edit form | No status restriction | — |
| Payment | Inherited from Invoice | Automatic | Class field is not displayed on the form |
| Expense | Manually selected on Add/Edit form | — | — |
| Credit Note | Manually selected on Add/Edit form | No status restriction | — |
| Credit Note Applied | Inherited from Credit Note | Automatic | Class field is not displayed on the form |
| Credit Note Refund | Inherited from Credit Note | Automatic | Class field is not displayed on the form |
| Sale Order Return | Manually selected on Add/Edit form | Edit Class only applies to Manual channels and Draft status. | Order return from Woo, POS, Portal, and Pre-order channels cannot be edited |
| Sale Order Refund | Inherited from Sale Order Return | Automatic | Class field is not displayed on the form |
| Payslip | Manually selected on Add/Edit form | No status restriction | — |
| Purchase Order | Manually selected on Add/Edit form | Draft status only | — |
| Purchase Invoice | Manually selected on Add/Edit form | Draft status only | — |
| Purchase Payment | Inherited from Purchase Invoice | Automatic | Class field is not displayed on the form |
| Purchase Order Return | Manually selected on Add form | — | — |
| Purchase Order Refund | Inherited from Purchase Order Return | Automatic | Class field is not displayed on the form |
| Debit Note | Manually selected on Add/Edit form | No status restriction | — |
| Debit Note Applied | Inherited from Debit Note | Automatic | Class field is not displayed on the form |
| Debit Note Refund | Inherited from Debit Note | Automatic | Class field is not displayed on the form |
| Inventory Receiving Voucher | Manually selected on Add/Edit form | Draft status only | — |
| Inventory Delivery Voucher | Manually selected on Add/Edit form | Draft status only | — |
| Loss & Adjustment | Manually selected on Add/Edit form | Draft status only | — |
| Opening Stock | Selected in the Opening Stock Mapping form | Accounting → Transactions → Inventory → Opening Stock | If no Class is selected, it will still appear when filtering by All |
| Manufacturing Order | Manually selected on Add form | — | — |
| Assets | Manually selected on Add/Edit form | No status restriction | — |
| Licenses | Manually selected on Add/Edit form | No status restriction | — |
| Components | Manually selected on Add/Edit form | No status restriction | — |
| Consumables | Manually selected on Add/Edit form | No status restriction | — |
| Maintenances | Manually selected on Add/Edit form | — | — |
| Depreciations | Selected in the Depreciations Mapping form | Accounting → Transactions → Fixed equipment→ Depreciations | If no Class is selected, it will still appear when filtering by All |
| Bill | Manually selected on Add/Edit form | Only before approval | — |
| Bill Payment | Manually selected on Add/Edit form | — | — |
| Check | Manually selected on Add/Edit form | — | — |
| Transfer | Manually selected on Add/Edit form | — | — |
| Journal Entry | Manually selected on Add/Edit form | — | Each line can belong to a different Class |
Some transactions automatically inherit the Class from their parent transaction without requiring manual selection:
Invoice (Class: Sales)
└── Payment → automatically inherits Class: Sales
Credit Note (Class: Marketing)
├── Credit Note Applied → automatically inherits Class: Marketing
└── Credit Note Refund → automatically inherits Class: Marketing
Debit Note (Class: Finance)
├── Debit Note Applied → automatically inherits Class: Finance
└── Debit Note Refund → automatically inherits Class: Finance
Sale Order Return (Class: Operations)
└── Sale Order Refund → automatically inherits Class: Operations
Purchase Invoice (Class: HR)
└── Purchase Payment → automatically inherits Class: HR
Purchase Order Return (Class: Sales)
└── Purchase Order Refund → automatically inherits Class: Sales
⚠️ Important — No Backward Synchronization:
If you change or remove the Class on the parent transaction (for example, an Invoice) after a derived transaction (such as a Payment) has already been created, the existing Payment’s Class will not be updated automatically.
The change only applies to derived transactions created after the modification.
Journal Entries behave differently from other transaction types:
Example
A Journal Entry contains 3 lines:
When filtering reports by the Finance Class, only Line 2 will appear in the report.
| Class Filter | Display Result |
| Select a specific Class (e.g., Sales) | Displays only transactions assigned to that Class |
| Select All | Displays all transactions — including both classified and unclassified transactions |